{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "gpuType": "T4",
      "authorship_tag": "ABX9TyN9KB3WbS7/cPwze6FNw41U",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "7b5956c58a664ccb87640faa398ab2ac": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_b79b2f6c3bcd410086031de7a59fae3b",
              "IPY_MODEL_a5bd758357a6426e8822d2145bb27cdf",
              "IPY_MODEL_324ff02ff77044d5a26d1f1a6c734eee"
            ],
            "layout": "IPY_MODEL_b77d7c9cb952429284c8074d7a098348"
          }
        },
        "b79b2f6c3bcd410086031de7a59fae3b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9def8660c8f645148c1baa5c26fbef4a",
            "placeholder": "​",
            "style": "IPY_MODEL_34802241ffc840c19347532c2c317780",
            "value": "Downloading readme: 100%"
          }
        },
        "a5bd758357a6426e8822d2145bb27cdf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d12bcb020f944dedac416f0cdc9fadd9",
            "max": 1119,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b15b1d522a2c46b49fd612a5c2e8e4c4",
            "value": 1119
          }
        },
        "324ff02ff77044d5a26d1f1a6c734eee": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_703753ff33314d33b04f7cdd5cf827d8",
            "placeholder": "​",
            "style": "IPY_MODEL_ef9b7e3458784a429956e2f8154b6623",
            "value": " 1.12k/1.12k [00:00&lt;00:00, 44.1kB/s]"
          }
        },
        "b77d7c9cb952429284c8074d7a098348": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9def8660c8f645148c1baa5c26fbef4a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "34802241ffc840c19347532c2c317780": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d12bcb020f944dedac416f0cdc9fadd9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b15b1d522a2c46b49fd612a5c2e8e4c4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "703753ff33314d33b04f7cdd5cf827d8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ef9b7e3458784a429956e2f8154b6623": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "befe76e251944018b04076130e159562": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_97f179cb9c6f4afbb8317203530eba0f",
              "IPY_MODEL_361f5b2083704d9e92ae48a85f97447e",
              "IPY_MODEL_3d542c7ba11349538fa54a2f4e11a24a"
            ],
            "layout": "IPY_MODEL_216bada5c3184e59a185966e59fa3ddc"
          }
        },
        "97f179cb9c6f4afbb8317203530eba0f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e569e58161664e1d84a174327cf591d9",
            "placeholder": "​",
            "style": "IPY_MODEL_50df070d9c45464bab99b528518c3232",
            "value": "Downloading data files: 100%"
          }
        },
        "361f5b2083704d9e92ae48a85f97447e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_fd95673b9a2d484c84f37b854789dd98",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_11106b93358648ada7314900054a55aa",
            "value": 1
          }
        },
        "3d542c7ba11349538fa54a2f4e11a24a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_83cffce417074b69bb4f18b82abc2c2a",
            "placeholder": "​",
            "style": "IPY_MODEL_74fd39e8664d448aba464b0c6587cde5",
            "value": " 1/1 [00:00&lt;00:00,  1.57it/s]"
          }
        },
        "216bada5c3184e59a185966e59fa3ddc": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e569e58161664e1d84a174327cf591d9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "50df070d9c45464bab99b528518c3232": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "fd95673b9a2d484c84f37b854789dd98": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "11106b93358648ada7314900054a55aa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "83cffce417074b69bb4f18b82abc2c2a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "74fd39e8664d448aba464b0c6587cde5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "10ae386ba1d24e4eb63c8d782c9b5702": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_19406aa9e3a34beea52619cd42792dd8",
              "IPY_MODEL_545dbf6d020342e6aaf8a625b6db2176",
              "IPY_MODEL_1f61726e7c124e7fa5ee41a610e42947"
            ],
            "layout": "IPY_MODEL_f8a5f67aa1434559adeaa1ae001f6ceb"
          }
        },
        "19406aa9e3a34beea52619cd42792dd8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7c3045b369db4003835ce942afd0b302",
            "placeholder": "​",
            "style": "IPY_MODEL_ba6a9ccb3a7d45119a495780bdc3d373",
            "value": "Downloading data: 100%"
          }
        },
        "545dbf6d020342e6aaf8a625b6db2176": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3ff0ce3626084c7ba43f7b3935eba787",
            "max": 1545435,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_93f7179cfcf14d428699143f6c74a077",
            "value": 1545435
          }
        },
        "1f61726e7c124e7fa5ee41a610e42947": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_50ccc32f3cbc4fbba7f121f8e57c54b0",
            "placeholder": "​",
            "style": "IPY_MODEL_1939a9f4e4024db497fa9f60e166756f",
            "value": " 1.55M/1.55M [00:00&lt;00:00, 2.79MB/s]"
          }
        },
        "f8a5f67aa1434559adeaa1ae001f6ceb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7c3045b369db4003835ce942afd0b302": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ba6a9ccb3a7d45119a495780bdc3d373": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3ff0ce3626084c7ba43f7b3935eba787": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "93f7179cfcf14d428699143f6c74a077": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "50ccc32f3cbc4fbba7f121f8e57c54b0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1939a9f4e4024db497fa9f60e166756f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d70458cb63464dbb83636a7b20451872": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_3ef1c947745c46858a6584d4175b21fe",
              "IPY_MODEL_6e5aba436047471c99ef0ff748704a61",
              "IPY_MODEL_641d82e70cf4463c9cdf2fd4f0368c30"
            ],
            "layout": "IPY_MODEL_3b94af5017e347c481a79fe7f64e4572"
          }
        },
        "3ef1c947745c46858a6584d4175b21fe": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d61163614a604059bace097212d9f8e3",
            "placeholder": "​",
            "style": "IPY_MODEL_620e0bdb38b348189b36dc835f0afd4d",
            "value": "Extracting data files: 100%"
          }
        },
        "6e5aba436047471c99ef0ff748704a61": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e474173489ed49b0b65f2a7ac0a98ca8",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_063bccccdb7e4061a0737c93d0e5fa50",
            "value": 1
          }
        },
        "641d82e70cf4463c9cdf2fd4f0368c30": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_90205c10b8b84df08140d1550482e867",
            "placeholder": "​",
            "style": "IPY_MODEL_bc53b30f67a7438b8235ea34287e4629",
            "value": " 1/1 [00:00&lt;00:00, 21.03it/s]"
          }
        },
        "3b94af5017e347c481a79fe7f64e4572": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d61163614a604059bace097212d9f8e3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "620e0bdb38b348189b36dc835f0afd4d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e474173489ed49b0b65f2a7ac0a98ca8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "063bccccdb7e4061a0737c93d0e5fa50": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "90205c10b8b84df08140d1550482e867": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "bc53b30f67a7438b8235ea34287e4629": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "39f8a5f9d250497682726e1c5b250f63": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_1b536829ac7547bcae0b3885bff78740",
              "IPY_MODEL_28744ba09a3e4070832767631be7657d",
              "IPY_MODEL_432c30717c76484e9add23adf29e5398"
            ],
            "layout": "IPY_MODEL_55a3345dcd5547c6aead4b2dd75bee53"
          }
        },
        "1b536829ac7547bcae0b3885bff78740": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6a409f57cc2b46c78bbefe502a486755",
            "placeholder": "​",
            "style": "IPY_MODEL_c707bcdf4f304b7fb548f9b876111baa",
            "value": "Generating train split: "
          }
        },
        "28744ba09a3e4070832767631be7657d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5ee36fa71c334de590435009c80d291f",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b4cb8a40a0de4b20bdb57a5bee28c6a5",
            "value": 1
          }
        },
        "432c30717c76484e9add23adf29e5398": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e63e8f8f66244ade910641a2e13d7eb7",
            "placeholder": "​",
            "style": "IPY_MODEL_6bbc1350bed84f8fa1bbf668faaf794b",
            "value": " 172/0 [00:00&lt;00:00, 2122.00 examples/s]"
          }
        },
        "55a3345dcd5547c6aead4b2dd75bee53": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6a409f57cc2b46c78bbefe502a486755": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c707bcdf4f304b7fb548f9b876111baa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "5ee36fa71c334de590435009c80d291f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": "20px"
          }
        },
        "b4cb8a40a0de4b20bdb57a5bee28c6a5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "e63e8f8f66244ade910641a2e13d7eb7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6bbc1350bed84f8fa1bbf668faaf794b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/LC1332/Chat-Haruhi-Suzumiya/blob/main/notebook/%E4%BD%BF%E7%94%A8ChatHaruhi%E5%AF%B9%E5%90%84%E5%AE%B6API%E5%AF%B9%E6%AF%94.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "目前计划比较\n",
        "\n",
        "- ChatGPT（3.5）\n",
        "- 百度3.5\n",
        "- 百度4.0\n",
        "- 讯飞2.0\n",
        "- 百川\n",
        "- GLM\n"
      ],
      "metadata": {
        "id": "eB7weaJRLq_s"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "- 发现百度的输入长度判断是用len(str)的，这里在malfoy里面出现一个比较尴尬的例子，就是对于大量英文输入，百度很快就会判超界，\n",
        "\n",
        "- ChatHaruhi中默认使用「」作为引号 如果模型输出其他形式的引号 原则上来说是有一定的错误\n",
        "\n",
        "- 百度4.0 有的时候会输出多句，并且把「」改为中文引号，没有使用既定格式。（这里其实ChatHaruhi可以再用一个trick去修正，但是也说明了百度follow格式的能力不强）\n",
        "\n",
        "- 如果模型多句的格式是正确的 我们的后处理会修正成单句，但是如果没有用「」引号格式就不行了。。\n",
        "\n",
        "- 金庸小说明显在百度的训练数据里面，写小说的能力还是不错的-o-\n",
        "\n",
        "- 讯飞的审核太严格了 经常不输出\n",
        "\n",
        "- 这里百川和百度的模型都需要用一个trick去修正prompt（在输出之前补充一句 “请请模仿上述经典桥段进行回复” 其他模型不需要，如果不增加这个trick效果会变差很多"
      ],
      "metadata": {
        "id": "zU2OgAJycLIj"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "安装必要的库"
      ],
      "metadata": {
        "id": "m65rrKcwLdm8"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!pip -q install transformers openai tiktoken langchain chromadb zhipuai erniebot\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "I-DADsf5LdAm",
        "outputId": "11596f47-ce91-4215-f68c-9c8c9d10b043"
      },
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.9 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K     \u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.1/7.9 MB\u001b[0m \u001b[31m4.3 MB/s\u001b[0m eta \u001b[36m0:00:02\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.8/7.9 MB\u001b[0m \u001b[31m61.6 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m7.9/7.9 MB\u001b[0m \u001b[31m86.6 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.9/7.9 MB\u001b[0m \u001b[31m63.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.0/77.0 kB\u001b[0m \u001b[31m10.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m89.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m92.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m479.8/479.8 kB\u001b[0m \u001b[31m43.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m68.4/68.4 kB\u001b[0m \u001b[31m7.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m302.0/302.0 kB\u001b[0m \u001b[31m34.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.8/3.8 MB\u001b[0m \u001b[31m118.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m83.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m44.5/44.5 kB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.4/2.4 MB\u001b[0m \u001b[31m107.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.9/92.9 kB\u001b[0m \u001b[31m14.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.6/59.6 kB\u001b[0m \u001b[31m8.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.4/5.4 MB\u001b[0m \u001b[31m110.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.2/6.2 MB\u001b[0m \u001b[31m85.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.5/57.5 kB\u001b[0m \u001b[31m6.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m103.9/103.9 kB\u001b[0m \u001b[31m9.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.3/67.3 kB\u001b[0m \u001b[31m8.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m593.7/593.7 kB\u001b[0m \u001b[31m52.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m13.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m239.0/239.0 kB\u001b[0m \u001b[31m28.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.4/49.4 kB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.0/67.0 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.8/143.8 kB\u001b[0m \u001b[31m18.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.8/50.8 kB\u001b[0m \u001b[31m7.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m295.0/295.0 kB\u001b[0m \u001b[31m34.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m8.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m341.4/341.4 kB\u001b[0m \u001b[31m38.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m95.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m73.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m130.2/130.2 kB\u001b[0m \u001b[31m16.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m110.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m13.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Building wheel for pypika (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
            "lida 0.0.10 requires kaleido, which is not installed.\n",
            "lida 0.0.10 requires python-multipart, which is not installed.\n",
            "llmx 0.0.15a0 requires cohere, which is not installed.\n",
            "tensorflow-probability 0.22.0 requires typing-extensions<4.6.0, but you have typing-extensions 4.8.0 which is incompatible.\u001b[0m\u001b[31m\n",
            "\u001b[0m"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "设置keys"
      ],
      "metadata": {
        "id": "hswmZMlOLc4Q"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "id": "47Ph654_LRrt"
      },
      "outputs": [],
      "source": [
        "import os\n",
        "\n",
        "# openai\n",
        "key = \"sk-Waf\"\n",
        "key_bytes = key.encode()\n",
        "os.environ[\"OPENAI_API_KEY\"] = key_bytes.decode('utf-8')\n",
        "\n",
        "# 文心一言\n",
        "os.environ[\"APIType\"] = \"aistudio\"\n",
        "os.environ[\"ErnieAccess\"] = \"b83ca\"\n",
        "\n",
        "# GLM\n",
        "import os\n",
        "os.environ['ZHIPU_API'] = 'a6e321'\n",
        "\n",
        "# 百川\n",
        "os.environ[\"BAICHUAN_API_AK\"] = \"ffee2\"\n",
        "os.environ[\"BAICHUAN_API_SK\"] = \"QK3y\"\n",
        "\n",
        "# Spark\n",
        "import os\n",
        "os.environ['APPID'] = '219'\n",
        "os.environ['APISecret'] = 'OWFm'\n",
        "os.environ['APIKey'] = 'b012'"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "%cd /content\n",
        "!rm -rf /content/Haruhi-2-Dev\n",
        "!git clone https://github.com/LC1332/Haruhi-2-Dev\n",
        "\n",
        "%cd /content/Haruhi-2-Dev"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "D6pr0HEVRASp",
        "outputId": "75dc75c5-48ab-4125-be3c-97d1dc2a8f99"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "/content\n",
            "Cloning into 'Haruhi-2-Dev'...\n",
            "remote: Enumerating objects: 842, done.\u001b[K\n",
            "remote: Counting objects: 100% (149/149), done.\u001b[K\n",
            "remote: Compressing objects: 100% (52/52), done.\u001b[K\n",
            "remote: Total 842 (delta 101), reused 140 (delta 97), pack-reused 693\u001b[K\n",
            "Receiving objects: 100% (842/842), 105.74 MiB | 12.33 MiB/s, done.\n",
            "Resolving deltas: 100% (431/431), done.\n",
            "/content/Haruhi-2-Dev\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "model_names = [\"openai\",\"spark\",\"ernie4.0\",\"ernie3.5\",\"BaiChuanAPIGPT\",\"GLMPro\"]\n",
        "model_names_zh = [\"openai\",\"星火2.0\", \"百度4.0\", \"百度3.5\", \"百川\",\"GLM\"]\n",
        "\n",
        "chatbots = []\n",
        "\n",
        "from ChatHaruhi import ChatHaruhi\n",
        "\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_name = 'haruhi', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "-R2OARM9Qafw"
      },
      "execution_count": 46,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 凉宫春日定性测试"
      ],
      "metadata": {
        "id": "HA7vJyeSTLwn"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"阿虚\"\n",
        "query_text = \"Haruhi, 我看新一年的棒球比赛要开始了！我们要去参加吗？\"\n",
        "\n",
        "responses = []\n",
        "\n",
        "for chatbot in chatbots:\n",
        "    responses.append( chatbot.chat(role = query_role, text = query_text) )\n",
        "\n",
        "print(\"---------\\nquery:\")\n",
        "print(f\"{query_role}:「{query_text}」\")\n",
        "for model_name_zh, response in zip(model_names_zh, responses):\n",
        "    print(f\"\\n{model_name_zh}:\\n {response}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Gt5i0qG-Ryg_",
        "outputId": "f060e051-9592-4d63-fb79-76a0834c42fd"
      },
      "execution_count": 47,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "请求错误: 10013, {'header': {'code': 10013, 'message': '非常抱歉，根据相关法律法规，我们无法提供关于以下内容的答案，包括但不限于：\\n\\t(1) 涉及国家安全的信息；\\n\\t(2) 涉及政治与宗教类的信息；\\n\\t(3) 涉及暴力与恐怖主义的信息；\\n\\t(4) 涉及黄赌毒类的信息；\\n\\t(5) 涉及不文明的信息。\\n我们会继续遵循相关法规法律的要求，共创一个健康和谐网络环境，谢谢您的理解。\\n', 'sid': 'cht000bdc2f@dx18ba289f36fb81c540', 'status': 2}}\n",
            " \n",
            "---------\n",
            "query:\n",
            "阿虚:「Haruhi, 我看新一年的棒球比赛要开始了！我们要去参加吗？」\n",
            "\n",
            "openai:\n",
            " 春日:「当然要参加啊！这是展示SOS团实力的机会！我们不能错过！」\n",
            "\n",
            "星火2.0:\n",
            " \n",
            "\n",
            "百度4.0:\n",
            " 春日:「当然要去参加了！我们SOS团可是要建成以全国为目标的队伍，怎么能错过这种展示实力的机会呢？」\n",
            "\n",
            "百度3.5:\n",
            " 春日:「参加？当然是要参加的！这种机会我们怎么能错过！」\n",
            "\n",
            "百川:\n",
            " 春日:「那是当然的！这可是让我们SOS团扬名立万的好机会！我们要全力以赴，争取赢得比赛！」\n",
            "\n",
            "GLM:\n",
            " 春日:「阿虚，你这么一说，我确实觉得是时候让SOS团再次挑战棒球比赛了！我们要去参加，而且这次我们一定要获得优胜！」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Comments:这里星火拒绝了回答，可能是memory里面触发了什么关键字"
      ],
      "metadata": {
        "id": "AIvNuW71SkkI"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"阿虚\"\n",
        "query_text = \"听说你在初中的时候拒绝了不少追求者？\"\n",
        "\n",
        "responses = []\n",
        "\n",
        "for chatbot in chatbots:\n",
        "    responses.append( chatbot.chat(role = query_role, text = query_text) )\n",
        "\n",
        "print(\"---------\\nquery:\")\n",
        "print(f\"{query_role}:「{query_text}」\")\n",
        "for model_name_zh, response in zip(model_names_zh, responses):\n",
        "    print(f\"\\n{model_name_zh}:\\n {response}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Uosw1j4kigOh",
        "outputId": "fa3084e9-036d-452f-9235-3f903deb72a7"
      },
      "execution_count": 48,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "阿虚:「听说你在初中的时候拒绝了不少追求者？」\n",
            "\n",
            "openai:\n",
            " 春日:「嗯，那是当然的。我可是一个独立自主的女孩，不喜欢被束缚和限制。我更愿意自由地追寻自己的兴趣和梦想。」\n",
            "\n",
            "星火2.0:\n",
            " 阿虚:「你听说了吗？新一年的棒球比赛要开始了，我们要去参加吗？」\n",
            "\n",
            "百度4.0:\n",
            " 春日:「那又怎样？追求者多并不代表我就得接受他们啊。我喜欢的人是我自己决定的，又不是别人。」\n",
            "\n",
            "百度3.5:\n",
            " 春日:「那又怎么样？」\n",
            "\n",
            "百川:\n",
            " 春日:「哼，这有什么奇怪的？我可是独一无二的凉宫春日，他们怎么可能配得上我？而且，我只关注阿虚你和SOS团的事情，其他人的事情我才懒得管呢！」\n",
            "\n",
            "GLM:\n",
            " 春日:「那是当然的，阿虚。我很清楚自己的价值，所以不会轻易接受别人的追求。初中时的我可是学校的风云人物，追求者当然不在少数。不过，那些人都没有真正打动我的心。现在我选择了SOS团，因为这里有一群真正懂我的人。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"阿虚\"\n",
        "query_text = \"你的男朋友必须不是普通人吗？\"\n",
        "\n",
        "responses = []\n",
        "\n",
        "for chatbot in chatbots:\n",
        "    responses.append( chatbot.chat(role = query_role, text = query_text) )\n",
        "\n",
        "print(\"---------\\nquery:\")\n",
        "print(f\"{query_role}:「{query_text}」\")\n",
        "for model_name_zh, response in zip(model_names_zh, responses):\n",
        "    print(f\"\\n{model_name_zh}:\\n {response}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "eXyDI2gJQoit",
        "outputId": "248c33cd-2391-4981-dfcf-2c07e4ececfb"
      },
      "execution_count": 49,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "阿虚:「你的男朋友必须不是普通人吗？」\n",
            "\n",
            "openai:\n",
            " 春日:「是的，我希望我的伴侣能够与众不同，不平凡。对我来说，普通人太无趣了，我喜欢追求神秘和刺激。外星人、超能力者或者其他特殊存在都可以成为我的选择。总之，我追求的是与众不同的体验和感受。」\n",
            "\n",
            "星火2.0:\n",
            " 春日:「不是普通人也没关系，只要他有趣、有个性，能让我觉得跟他在一起很愉快就行了。至于你呢，阿虚，你应该把注意力放在你自己的事情上，而不是一直管我。」\n",
            "\n",
            "百度4.0:\n",
            " 春日:「当然啦！我的男朋友一定要是个与众不同的人，否则怎么配得上我呢？」\n",
            "\n",
            "百度3.5:\n",
            " 春日:「那是当然！如果只是因为寂寞而交往，根本就是浪费时间！」\n",
            "\n",
            "百川:\n",
            " 春日:「那是当然的！我可是独一无二的凉宫春日，我的男朋友怎么能是普通人？我要找的是能让我心跳加速，让我感到兴奋不已的人！这样的人，才是我真正的男朋友！」\n",
            "\n",
            "GLM:\n",
            " 春日:「阿虚，你这个问题问得好。我的男朋友当然不能是普通人！我需要的是一种与众不同的、能激发我兴趣的关系。我要找的是一个能跟上我节奏的人，一个能和我一起冒险、打破常规的人。SOS团就是最好的证明，我们一起完成了许多不平凡的事情。所以，我的男朋友也必须是这样的人。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def test(chatbots, query_role, query_text):\n",
        "    responses = []\n",
        "\n",
        "    for chatbot in chatbots:\n",
        "        try:\n",
        "            response = chatbot.chat(role = query_role, text = query_text)\n",
        "        except:\n",
        "            response = \"failed\"\n",
        "        responses.append( response )\n",
        "\n",
        "    print(\"---------\\nquery:\")\n",
        "    print(f\"{query_role}:「{query_text}」\")\n",
        "    for model_name_zh, response in zip(model_names_zh, responses):\n",
        "        print(f\"\\n{model_name_zh}:\\n {response}\")"
      ],
      "metadata": {
        "id": "10gJV3vtTT-U"
      },
      "execution_count": 34,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 李云龙定性测试"
      ],
      "metadata": {
        "id": "BCXfLZXfTIlc"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_name = '李云龙', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "U0VYj0UyS6vn"
      },
      "execution_count": 22,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "发现前面GLM忘记加了这里加一下"
      ],
      "metadata": {
        "id": "OSzPgSb0USYN"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"魏大勇\"\n",
        "query_text = \"团长，鬼子们从西边摸上来了！\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "CvUAZnxtTIAQ",
        "outputId": "dee24600-2158-4a4b-e5ec-02d59a276d24"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "请求错误: 10013, {'header': {'code': 10013, 'message': '非常抱歉，根据相关法律法规，我们无法提供关于以下内容的答案，包括但不限于：\\n\\t(1) 涉及国家安全的信息；\\n\\t(2) 涉及政治与宗教类的信息；\\n\\t(3) 涉及暴力与恐怖主义的信息；\\n\\t(4) 涉及黄赌毒类的信息；\\n\\t(5) 涉及不文明的信息。\\n我们会继续遵循相关法规法律的要求，共创一个健康和谐网络环境，谢谢您的理解。\\n', 'sid': 'cht000bab03@dx18ba2512900b8f3540', 'status': 2}}\n",
            " \n",
            "---------\n",
            "query:\n",
            "魏大勇:「团长，鬼子们从西边摸上来了！」\n",
            "\n",
            "openai:\n",
            " 李云龙:「西边？他们还真是不要命啊！准备迎战，给我拿起枪，我们不能让他们轻易通过！」\n",
            "\n",
            "星火2.0:\n",
            " \n",
            "\n",
            "百度4.0:\n",
            " 李云龙：“来的好，老子正愁没仗打呢，传我命令，全体上刺刀，准备战斗！”\n",
            "\n",
            "百度3.5:\n",
            " 李云龙:「好，和尚，你马上去通知赵刚和孔捷，让他们做好战斗准备。同时让张大彪把一营和二营集结起来，准备迎敌！」\n",
            "\n",
            "百川:\n",
            " 李云龙：“好小子，你立了一功。”\n",
            "\n",
            "赵刚：“李云龙，看来我们要做好战斗准备了。”\n",
            "\n",
            "李云龙：“哼，这些鬼子还真是不死心，非要尝尝老子的厉害。”\n",
            "\n",
            "赵刚：“李云龙，我们要谨慎行事，不能轻易暴露我们的位置。”\n",
            "\n",
            "李云龙：“放心吧，赵刚，我会小心的。”\n",
            "\n",
            "GLM:\n",
            " 李云龙:「他娘的，这群小鬼子还真是阴魂不散！传令下去，让一营、二营迅速做好战斗准备，老子要让这些鬼子有来无回！」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "输出多句也是有可能的，有时候语言模型会有这个现象，可以通过后处理去解决"
      ],
      "metadata": {
        "id": "rlziKQFVVJej"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"旅长陈赓\"\n",
        "query_text = \"李云龙，我听说你小子最近发财了？\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "oYlIrKYTTgA-",
        "outputId": "f140e12f-bf79-443b-f607-406166174912"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "请求错误: 10013, {'header': {'code': 10013, 'message': '非常抱歉，根据相关法律法规，我们无法提供关于以下内容的答案，包括但不限于：\\n\\t(1) 涉及国家安全的信息；\\n\\t(2) 涉及政治与宗教类的信息；\\n\\t(3) 涉及暴力与恐怖主义的信息；\\n\\t(4) 涉及黄赌毒类的信息；\\n\\t(5) 涉及不文明的信息。\\n我们会继续遵循相关法规法律的要求，共创一个健康和谐网络环境，谢谢您的理解。\\n', 'sid': 'cht000bab9d@dx18ba25223fbb8f3540', 'status': 2}}\n",
            " \n",
            "---------\n",
            "query:\n",
            "旅长陈赓:「李云龙，我听说你小子最近发财了？」\n",
            "\n",
            "openai:\n",
            " 李云龙:「发什么财啊，我这不是穷得快要饭了嘛！哪里来的发财啊！」\n",
            "\n",
            "星火2.0:\n",
            " \n",
            "\n",
            "百度4.0:\n",
            " 李云龙：“发财？我哪敢啊，穷得都快揭不开锅了。”\n",
            "\n",
            "旅长陈赓：“得了，别给我装蒜了，你那一手我还不知道？赶紧老实交代，这次又捞了多少好处？”\n",
            "\n",
            "李云龙：“没多少，就一个骑兵营的装备，我准备组建一个骑兵营。”\n",
            "\n",
            "旅长陈赓：“你小子真能捞啊，一个团就想弄个骑兵营，那我这个旅是不是得弄个骑兵团啊？”\n",
            "\n",
            "李云龙：“那应该应该应该，以旅长的名头，配个骑兵师都不多。”\n",
            "\n",
            "旅长陈赓：“废话少说，你留下一个连的马匹装备，剩下的统统给我送到旅部来。”\n",
            "\n",
            "李云龙：“干嘛呀，旅长，打劫啊？你干脆枪毙我得了。”\n",
            "\n",
            "旅长陈赓：“不行，那咱们俩就得说道说道了，你未经请示擅自调动部队，这罪过可不小吧？”\n",
            "\n",
            "李云龙：“我以前请示过旅长你啊。”\n",
            "\n",
            "旅长陈赓：“我同意过？谁能给你证明？”\n",
            "\n",
            "李云龙：“旅长啊，这你可不能不认账啊。”\n",
            "\n",
            "旅长陈赓：“少跟我扯皮，现在两条路由你选，要么你把马匹装备给我送来，要么我就上报总部追究你擅自调动部队的事。李云龙，你打算怎么办？”\n",
            "\n",
            "李云龙：“官大一级压死人哪，行行行，旅长我认了，你要想打劫你就明说，找这些借口干什么呀？”\n",
            "\n",
            "百度3.5:\n",
            " 李云龙:「嘿嘿，发什么财啊，也就是个小富翁而已。」\n",
            "\n",
            "百川:\n",
            " 李云龙：“旅长，您就别拿我开玩笑了，我这穷得都快揭不开锅了，哪里来的财发？”\n",
            "\n",
            "旅长陈赓:「我听说你这次捞了不少好处，老实交代，你到底捞了多少？」\n",
            "\n",
            "GLM:\n",
            " 李云龙:「嘿嘿，旅长，这发财的事儿怎么说呢，就那么回事吧。反正咱也不是为了发财，就是为了给弟兄们谋点福利，您也知道，我这人就是讲义气。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "输出多句也是有可能的，有时候语言模型会有这个现象，可以通过后处理去解决\n",
        "\n",
        "这里文心4.0其实确实在复述剧情 是合理的"
      ],
      "metadata": {
        "id": "Wfn3DRUnVRbO"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"旅长陈赓\"\n",
        "query_text = \"少废话，你自己留下一个连的马匹装备，剩下的都给我送到旅部来\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "KkypvOyYUVGH",
        "outputId": "97379804-2b14-4048-fc33-326bda75e01e"
      },
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "请求错误: 10013, {'header': {'code': 10013, 'message': '非常抱歉，根据相关法律法规，我们无法提供关于以下内容的答案，包括但不限于：\\n\\t(1) 涉及国家安全的信息；\\n\\t(2) 涉及政治与宗教类的信息；\\n\\t(3) 涉及暴力与恐怖主义的信息；\\n\\t(4) 涉及黄赌毒类的信息；\\n\\t(5) 涉及不文明的信息。\\n我们会继续遵循相关法规法律的要求，共创一个健康和谐网络环境，谢谢您的理解。\\n', 'sid': 'cht000ba956@dx18ba252d3b1b894540', 'status': 2}}\n",
            " \n",
            "---------\n",
            "query:\n",
            "旅长陈赓:「少废话，你自己留下一个连的马匹装备，剩下的都给我送到旅部来」\n",
            "\n",
            "openai:\n",
            " 李云龙:「干吗呀，旅长，打劫呀？你干脆枪毙我得了！不行，坚决不行！」\n",
            "\n",
            "星火2.0:\n",
            " \n",
            "\n",
            "百度4.0:\n",
            " 李云龙：“旅长，你这不是打劫吗？我穷得都快当裤子了，你可不能这么剥削我啊。”\n",
            "\n",
            "旅长陈赓：“别给我废话，你一个团都能养一个骑兵营了，我一个旅还不能有个骑兵团？赶紧把装备给我送过来。”\n",
            "\n",
            "李云龙：“旅长，我求求你了，给我留点家底吧。”\n",
            "\n",
            "旅长陈赓：“少罗嗦，你擅自调动部队，我还没跟你算账呢。你是想让我把这事上报总部，还是想把装备送过来？”\n",
            "\n",
            "李云龙：“旅长，我认栽了，我把装备给你送过来。”\n",
            "\n",
            "百度3.5:\n",
            " 李云龙:「旅长，你这么做是不是有点不合适啊？我们可是兄弟部队，你这么做可是有点过分啊」\n",
            "\n",
            "百川:\n",
            " 李云龙：“旅长，您这是要打劫啊？我这可是为了组建骑兵营，您不能这样对我啊。”\n",
            "\n",
            "旅长陈赓:「别跟我扯皮，你要么把马匹装备给我送来，要么我就上报总部追究你擅自调动部队的事，你自己看着办吧。」\n",
            "\n",
            "GLM:\n",
            " 李云龙:「旅长，这可都是我好不容易才弄到的装备，您不能全拿走啊。好歹给我留点，让我好歹组建一个骑兵营不是。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 于谦"
      ],
      "metadata": {
        "id": "lpbZi_PJVBd5"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_name = '于谦', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "AqKqxDl3UpfZ"
      },
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"郭德纲\"\n",
        "query_text = \"听说现在人工智能发展得很迅速啊。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "SLAgHGKaVFTF",
        "outputId": "e74c5dba-9886-48a5-9e8f-8194cb659f26"
      },
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "郭德纲:「听说现在人工智能发展得很迅速啊。」\n",
            "\n",
            "openai:\n",
            " 于谦:「是啊，现在的科技发展真是太快了。」\n",
            "\n",
            "星火2.0:\n",
            " 于谦:「是啊，机器人都能生孩子了。」\n",
            "\n",
            "百度4.0:\n",
            " 于谦:「是啊，时代进步嘛。」\n",
            "\n",
            "百度3.5:\n",
            " 于谦:「是啊，听说都开始研究智能机器人了。」\n",
            "\n",
            "百川:\n",
            " 「确实如此。」\n",
            "\n",
            "GLM:\n",
            " 于谦:「是啊，现在人工智能可厉害了。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"郭德纲\"\n",
        "query_text = \"有个公司联系我，说可以给我做个电子于谦。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "z8q3MgyOVcmy",
        "outputId": "63564f15-5fb3-457a-b974-d287db6d78f5"
      },
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "郭德纲:「有个公司联系我，说可以给我做个电子于谦。」\n",
            "\n",
            "openai:\n",
            " 于谦:「电子于谦？那可真是个创新的想法啊。」\n",
            "\n",
            "星火2.0:\n",
            " 于谦:「哦？那可真是个大工程啊。」\n",
            "\n",
            "百度4.0:\n",
            " 于谦:「电子于谦？那怎么用啊？」\n",
            "\n",
            "百度3.5:\n",
            " 于谦:「这还不好啊？你也整个单口，我一个人也撑不住啊。」\n",
            "\n",
            "百川:\n",
            " 「真的假的？」\n",
            "\n",
            "GLM:\n",
            " 于谦:「哦，那得做多好啊。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"郭德纲\"\n",
        "query_text = \"这样以后我上台，只要再配个电子于谦，这电子于谦和我，就能把相声这活儿给干了。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "4oEtaAhSVlXN",
        "outputId": "2dc468e4-955b-4e40-e9bb-2e56d1fd0c0b"
      },
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "郭德纲:「这样以后我上台，只要再配个电子于谦，这电子于谦和我，就能把相声这活儿给干了。」\n",
            "\n",
            "openai:\n",
            " 于谦:「哈哈，那得看电子于谦能不能像我一样拿捏得住观众的笑点了。」\n",
            "\n",
            "星火2.0:\n",
            " 于谦:「那可不行，电子于谦没有灵魂，怎么能代替真正的相声演员呢？」\n",
            "\n",
            "百度4.0:\n",
            " 于谦:「那您这人工智能，是不是还得需要我配合一下，才能演的更真实啊？」\n",
            "\n",
            "百度3.5:\n",
            " 于谦:「那我是得跟他们好好聊聊，看看这个电子于谦能不能干得了我的活儿。」\n",
            "\n",
            "百川:\n",
            " 「那您得先找个程序员。」\n",
            "\n",
            "GLM:\n",
            " 于谦:「是，那可真是太方便了。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "我感觉ChatGPT是不是变傻了，他以前会给我反讽一下的。。"
      ],
      "metadata": {
        "id": "ukMARWgxWDbc"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 试一下Malfoy\n",
        "\n",
        "Malfoy会比较难，因为他的memory都是英文的"
      ],
      "metadata": {
        "id": "AkNPkpErWNaD"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_name = 'Malfoy', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "6bKisk55V1Ob"
      },
      "execution_count": 31,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"Harry\"\n",
        "query_text = \"Malfoy，别以为我们不知道你在搞什么小动作。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "Ge5FcgfnWXlx",
        "outputId": "9929164f-e522-4237-cc50-e728c7da00c8"
      },
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "Harry:「Malfoy，别以为我们不知道你在搞什么小动作。」\n",
            "\n",
            "openai:\n",
            " Malfoy: 「Potter, Potter, always so paranoid. What 'little actions' do you think I'm involved in now? Planning some daring mischief to outshine your feeble attempts at rule-breaking, are you? Well, I suggest you focus on your own affairs and leave me to my superior endeavors.」\n",
            "\n",
            "星火2.0:\n",
            " Malfoy:「Oh, Potter, you're always so suspicious. As if I would dare to do something against my own house.」\n",
            "\n",
            "百度4.0:\n",
            " failed\n",
            "\n",
            "百度3.5:\n",
            " failed\n",
            "\n",
            "百川:\n",
            " Draco Malfoy:「Potter，你又在胡说八道了。我只是在完成我的任务，这和你无关。」\n",
            "\n",
            "GLM:\n",
            "  Malfoy:「What do you mean, Potter? I can assure you, I am not up to anything.」\\n\\n\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "话说百度api调用的时候是不是不支持比较长（1000个单词）的英文query啊"
      ],
      "metadata": {
        "id": "NqgUFz5mW44R"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 试一下韦小宝"
      ],
      "metadata": {
        "id": "EUyVvwwtXG3r"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_name = 'weixiaobao', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "WKnjySSOWc89"
      },
      "execution_count": 36,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"陈近南\"\n",
        "query_text = \"烧过黄纸，歃血为盟之后，韦小宝你就是我天地会的兄弟，暂时编入青木堂我们有十大会规，二十大守则，三十大戒条，八十小戒条，如果犯了其中一条。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "Wf_eZPmGYAah",
        "outputId": "5f2b9f38-d0c6-411c-f891-bff751994948"
      },
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "请求错误: 10013, {'header': {'code': 10013, 'message': '非常抱歉，根据相关法律法规，我们无法提供关于以下内容的答案，包括但不限于：\\n\\t(1) 涉及国家安全的信息；\\n\\t(2) 涉及政治与宗教类的信息；\\n\\t(3) 涉及暴力与恐怖主义的信息；\\n\\t(4) 涉及黄赌毒类的信息；\\n\\t(5) 涉及不文明的信息。\\n我们会继续遵循相关法规法律的要求，共创一个健康和谐网络环境，谢谢您的理解。\\n', 'sid': 'cht000bb921@dx18ba260faccb81c540', 'status': 2}}\n",
            " \n",
            "---------\n",
            "query:\n",
            "陈近南:「烧过黄纸，歃血为盟之后，韦小宝你就是我天地会的兄弟，暂时编入青木堂我们有十大会规，二十大守则，三十大戒条，八十小戒条，如果犯了其中一条。」\n",
            "\n",
            "openai:\n",
            " 韦小宝:「哎呀，陈兄，这规矩实在太多了吧！小宝我是个自由奔放的人，不喜欢被束缚啊。你看，我就是一根不服管束的野马，谁也驯不了我。就算我犯了这些规矩，你又能怎样？难道还能把我绑起来吗？」\n",
            "\n",
            "星火2.0:\n",
            " \n",
            "\n",
            "百度4.0:\n",
            " 韦小宝:「那你就把我开除出天地会，像这样的大事，我韦小宝是决不会干的。歃血为盟，兄弟就加入了天地会，青木堂有我韦小宝一份，就算是刀山油锅，兄弟也决不退缩。」\n",
            "\n",
            "百度3.5:\n",
            " 嘿嘿，陈总舵主，您别吓唬我韦小宝。我会好好记着这些规矩的，您可别给我惹麻烦。不过话说回来，陈总舵主，您刚才提到的那些规矩啊，听起来可真是让人头疼呢。什么十大戒条，二十大守则，八十小戒条，听起来就像是和尚念经一样，让人听得头都大了。不过呢，我韦小宝可是个听话的好孩子，一定会好好遵守这些规矩的，您就放心吧。\n",
            "\n",
            "百川:\n",
            " failed\n",
            "\n",
            "GLM:\n",
            " 韦小宝:「那还用说，哥哥您说，小弟我犯了哪一条，咱们立刻砍了小弟的脑袋，绝无怨言。」\\n陈近南:「你这个小子，油嘴滑舌。我还没说完呢。如果犯了其中一条，就算你是我的徒弟，我也是要清理门户的。」\\n韦小宝:「是，是。哥哥您说，小弟我听着呢。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"小玄子\"\n",
        "query_text = \"那个鳌拜实在欺人太甚，真是朕的心头大患\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "LFIkEgW0YVrx",
        "outputId": "8582680a-32d8-4b89-ada1-202949a12c00"
      },
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "小玄子:「那个鳌拜实在欺人太甚，真是朕的心头大患」\n",
            "\n",
            "openai:\n",
            " 韦小宝:「小玄子啊，你别担心，我韦小宝在这里。鳌拜那老家伙，我早就看他不顺眼了。他欺负你，就是欺负我韦小宝，我绝不会让他得逞。你放心，我会想办法解决这个大患，让你的心头放松些。」\n",
            "\n",
            "星火2.0:\n",
            " 韦小宝:「皇上放心，鳌拜这老狐狸虽然狡猾，但迟早会让他领教一下咱们天地会的厉害。不过皇上您可千万别亲自出手，免得受了伤，毕竟您是天下万民的依靠啊。」\n",
            "\n",
            "百度4.0:\n",
            " 韦小宝:「小玄子，你别担心，这个鳌拜虽然厉害，但咱们总有办法对付他的。你就放宽心，好好当你的皇帝，这种大事就交给我来办吧。」\n",
            "\n",
            "百度3.5:\n",
            " 嘿嘿，小玄子，你不用担心，这个鳌拜虽然嚣张，不过他也有他的弱点。你看，他这么贪权，我们就利用他的这个弱点，让他自己送上门来。至于怎么操作，你就交给我韦小宝吧，我自有妙计。\n",
            "\n",
            "百川:\n",
            " failed\n",
            "\n",
            "GLM:\n",
            " 韦小宝:「皇上，这鳌拜自恃功高，的确是有些狂妄。不过皇上您放心，皇上英明神武，身边又有我这样的得力干将，咱们找个机会，一定能让他规矩起来。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "----\n",
        "\n",
        "百川在韦小宝这儿都挂掉了 是不是记忆里面有什么没过审核\n"
      ],
      "metadata": {
        "id": "aH2mdDJZYsFj"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 试一下岳不群"
      ],
      "metadata": {
        "id": "JR-CkX9QZZMK"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install -q datasets"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "hk09YYCsZiu1",
        "outputId": "bd940e2e-67f8-443b-d630-6413ec28c3fa"
      },
      "execution_count": 40,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m493.7/493.7 kB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m115.3/115.3 kB\u001b[0m \u001b[31m16.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m19.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_from_hf = 'chengli-thu/yuebuqun', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 177,
          "referenced_widgets": [
            "7b5956c58a664ccb87640faa398ab2ac",
            "b79b2f6c3bcd410086031de7a59fae3b",
            "a5bd758357a6426e8822d2145bb27cdf",
            "324ff02ff77044d5a26d1f1a6c734eee",
            "b77d7c9cb952429284c8074d7a098348",
            "9def8660c8f645148c1baa5c26fbef4a",
            "34802241ffc840c19347532c2c317780",
            "d12bcb020f944dedac416f0cdc9fadd9",
            "b15b1d522a2c46b49fd612a5c2e8e4c4",
            "703753ff33314d33b04f7cdd5cf827d8",
            "ef9b7e3458784a429956e2f8154b6623",
            "befe76e251944018b04076130e159562",
            "97f179cb9c6f4afbb8317203530eba0f",
            "361f5b2083704d9e92ae48a85f97447e",
            "3d542c7ba11349538fa54a2f4e11a24a",
            "216bada5c3184e59a185966e59fa3ddc",
            "e569e58161664e1d84a174327cf591d9",
            "50df070d9c45464bab99b528518c3232",
            "fd95673b9a2d484c84f37b854789dd98",
            "11106b93358648ada7314900054a55aa",
            "83cffce417074b69bb4f18b82abc2c2a",
            "74fd39e8664d448aba464b0c6587cde5",
            "10ae386ba1d24e4eb63c8d782c9b5702",
            "19406aa9e3a34beea52619cd42792dd8",
            "545dbf6d020342e6aaf8a625b6db2176",
            "1f61726e7c124e7fa5ee41a610e42947",
            "f8a5f67aa1434559adeaa1ae001f6ceb",
            "7c3045b369db4003835ce942afd0b302",
            "ba6a9ccb3a7d45119a495780bdc3d373",
            "3ff0ce3626084c7ba43f7b3935eba787",
            "93f7179cfcf14d428699143f6c74a077",
            "50ccc32f3cbc4fbba7f121f8e57c54b0",
            "1939a9f4e4024db497fa9f60e166756f",
            "d70458cb63464dbb83636a7b20451872",
            "3ef1c947745c46858a6584d4175b21fe",
            "6e5aba436047471c99ef0ff748704a61",
            "641d82e70cf4463c9cdf2fd4f0368c30",
            "3b94af5017e347c481a79fe7f64e4572",
            "d61163614a604059bace097212d9f8e3",
            "620e0bdb38b348189b36dc835f0afd4d",
            "e474173489ed49b0b65f2a7ac0a98ca8",
            "063bccccdb7e4061a0737c93d0e5fa50",
            "90205c10b8b84df08140d1550482e867",
            "bc53b30f67a7438b8235ea34287e4629",
            "39f8a5f9d250497682726e1c5b250f63",
            "1b536829ac7547bcae0b3885bff78740",
            "28744ba09a3e4070832767631be7657d",
            "432c30717c76484e9add23adf29e5398",
            "55a3345dcd5547c6aead4b2dd75bee53",
            "6a409f57cc2b46c78bbefe502a486755",
            "c707bcdf4f304b7fb548f9b876111baa",
            "5ee36fa71c334de590435009c80d291f",
            "b4cb8a40a0de4b20bdb57a5bee28c6a5",
            "e63e8f8f66244ade910641a2e13d7eb7",
            "6bbc1350bed84f8fa1bbf668faaf794b"
          ]
        },
        "id": "qrgeYJs1YOQh",
        "outputId": "5e96e006-3321-4ec6-a407-448e438082d6"
      },
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading readme:   0%|          | 0.00/1.12k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "7b5956c58a664ccb87640faa398ab2ac"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading data files:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "befe76e251944018b04076130e159562"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading data:   0%|          | 0.00/1.55M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "10ae386ba1d24e4eb63c8d782c9b5702"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Extracting data files:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "d70458cb63464dbb83636a7b20451872"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Generating train split: 0 examples [00:00, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "39f8a5f9d250497682726e1c5b250f63"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"五仙教主蓝凤凰\"\n",
        "query_text = \"你为甚么叫我老人家，难道我已经很老了吗\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "de7hwGkpZhty",
        "outputId": "2756c2b7-442f-4be4-eb30-6fc29d839ce8"
      },
      "execution_count": 42,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "五仙教主蓝凤凰:「你为甚么叫我老人家，难道我已经很老了吗」\n",
            "\n",
            "openai:\n",
            " 岳不群:「不敢当，蓝教主风华正茂，容貌依旧绝世，岳某之称呼实是失礼之处，还请蓝教主见谅。」\n",
            "\n",
            "星火2.0:\n",
            " 岳不群:「姑娘你你便是五仙教蓝教主。」\n",
            "\n",
            "百度4.0:\n",
            " 岳不群微微一笑，道：“姑娘误会了，称呼老人家，只是我们汉人的一种尊称，并无他意。姑娘年轻貌美，自然是青春焕发，哪里会老呢？”他言辞恳切，态度谦逊，显得极有风度。\n",
            "\n",
            "蓝凤凰闻言，眼中闪过一丝疑惑，但很快又恢复了平静。她冷冷地道：“既是如此，岳先生有何事找我？”\n",
            "\n",
            "岳不群道：“听闻五仙教擅长使用瘴、蛊、毒，令人防不胜防。在下对此深感好奇，不知能否请教一二？”他语气平和，但眼中却闪烁着狡黠的光芒。\n",
            "\n",
            "蓝凤凰心中一凛，她自然明白岳不群的来意。当下冷冷地道：“岳先生过誉了，我们五仙教只是些旁门左道，哪里入得了你的法眼？”\n",
            "\n",
            "桃谷六仙在一旁看得津津有味，忍不住插嘴道：“岳先生真笨，人家明明不想教你，你还缠着不放。”令狐冲也是面露尴尬，不知如何是好。\n",
            "\n",
            "岳不群却并不生气，只是微微一笑，道：“既然是蓝教主不肯赐教，那在下也不勉强。只是，华山派与五仙教并无仇怨，为何蓝教主对令狐冲如此敌意？”\n",
            "\n",
            "蓝凤凰冷冷地道：“令狐冲是你华山派的弟子，却与我五仙教结交。你们汉人最是狡诈，我可信不过。”\n",
            "\n",
            "岳不群闻言，心中暗自思量，口中却道：“原来如此。那么在下就此告辞，后会有期。”说罢，转身便欲离去。\n",
            "\n",
            "百度3.5:\n",
            " 我华山派与五仙教素来井水不犯河水，你何故来我派捣乱？\n",
            "\n",
            "百川:\n",
            " 岳不群:「姑娘，你便是五仙教蓝教主吧？」\n",
            "\n",
            "GLM:\n",
            " 岳不群:「蓝教主，岳某言语失敬，请您恕罪。您青春貌美，岳某怎敢称您为老人家。」\\n\\n五仙教主蓝凤凰:「你倒会说话。我可没空跟你闲聊，我要找令狐冲令狐冲这小子，听说他割了自己的血，去给老头子的女儿喝，救那姑娘的性命。这样有情有意之人，咱们苗家女子最是佩服，因此我要见见。」\\n\\n岳不群:「蓝教主，令狐冲他现在身受重伤，神智不清，实在无法拜见您。您贵人事忙，不如改日再来，那时令狐冲状况必定好转，咱们再好好款待您。」\\n\\n五仙教主蓝凤凰:「哼，你们汉人就是鬼心眼儿多。好，我就等他伤愈再来。不过，你得给我好好照顾他，要是他有个三长两短，我可饶不了你。」\\n\\n岳不群:「岳某谨记教主叮嘱，必定尽心竭力照顾令狐冲，敬请蓝教主放心。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "---\n",
        "\n",
        "这里百度4.0输出的是原小说- -？\n",
        "\n",
        "GLM输出的是我记忆里面的语料"
      ],
      "metadata": {
        "id": "vsyLhVCibV_C"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "chatbots = []\n",
        "for name in model_names:\n",
        "    chatbot = ChatHaruhi(role_from_hf = 'chengli-thu/yuebuqun', llm = name )\n",
        "    chatbots.append(chatbot)"
      ],
      "metadata": {
        "id": "dFNfZ0Q7abjj"
      },
      "execution_count": 43,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query_role = \"左冷禅\"\n",
        "query_text = \"岳先生，令狐掌门不忘你旧日对他的恩义，可喜可贺。阁下于五派合并之举，赞成也罢，反对也罢，令狐掌门都唯你马首是瞻。但不知阁下尊意若何。\"\n",
        "test(chatbots, query_role, query_text)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "PvSwBEXvbGx6",
        "outputId": "7aba53af-686f-4f42-a72f-0a8dd64d0f1e"
      },
      "execution_count": 44,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " \n",
            "---------\n",
            "query:\n",
            "左冷禅:「岳先生，令狐掌门不忘你旧日对他的恩义，可喜可贺。阁下于五派合并之举，赞成也罢，反对也罢，令狐掌门都唯你马首是瞻。但不知阁下尊意若何。」\n",
            "\n",
            "openai:\n",
            " 岳不群:「承左盟主询及，在下虽于此事曾细加考虑，但要作出一个极为妥善周详的抉择，却亦不易。」\n",
            "\n",
            "星火2.0:\n",
            " 岳不群:「承左盟主询及，在下虽于此事曾细加考虑，但要作出一个极为妥善周详的抉择，却亦不易。我华山创派二百余年，中间曾有气宗、剑宗之争。众位武林前辈都知道的。在下念及当日两宗自相残杀的惨状，至今兀自不寒而栗」\n",
            "\n",
            "百度4.0:\n",
            " 岳不群微微一笑，道：“承左盟主美意，只是此事关系重大，在下实不敢擅自作主。况且，华山派与恒山派联手，固然可以增加五岳剑派的力量，但其中也有许多难解之处，须要深思熟虑。”\n",
            "\n",
            "左冷禅道：“岳先生有何难解之处，不妨说出来大家参详。”\n",
            "\n",
            "岳不群道：“华山、恒山两派剑法路数不同，合并之后，难免有格格不入之处。况且，我华山派昔年有剑宗、气宗之争，虽然时至今日，两宗早已和睦如一，但难免还有一些遗迹，令人回想当年。这些因素，都须得深思熟虑，方敢决定。”\n",
            "\n",
            "令狐冲闻言，心中一动，知道师父是在提醒自己，不要忘了华山派的气剑之争，以免重蹈覆辙。当下诺诺连声，不敢再提此事。\n",
            "\n",
            "百度3.5:\n",
            " 左盟主过誉了。令狐掌门与我是师徒之情，他虽曾受我恩惠，但如今他已自立门户，且在江湖上声名远播，武功高强，我华山派早已无法与他相提并论。对于五派合并之事，我尚未有定论，还望左盟主与各位英雄见谅。\n",
            "\n",
            "百川:\n",
            " 承左盟主询及，在下虽于此事曾细加考虑，但要作出一个极为妥善周详的抉择，却亦不易。我华山创派二百余年，中间曾有气宗、剑宗之争。众位武林前辈都知道的。在下念及当日两宗自相残杀的惨状，至今兀自不寒而栗。\n",
            "\n",
            "GLM:\n",
            " 岳不群:「左盟主言重了，令狐冲是我华山派的弟子，我自然对他的品行和才能有所了解。至于五派合并之事，我华山派自当以整个江湖的利益为重，一切决定皆以武林大局为依归。」\\n\\n岳不群:「然而此事关系重大，非一蹴可就。我华山派还需与众派深入沟通协商，共同寻求一个对武林最有利的解决方案。」\\n\\n岳不群:「此外，左盟主可否告知，五派合并后，新的掌门人将如何产生？是依据何种标准选拔？这武林中英雄豪杰众多，若掌门人不能服众，恐将引起新的纷争。」\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "Ii9ZO5NYbNv1"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}